﻿using B.S.Outsourcing.ErrorCode;
using MediatR;

namespace B.S.Outsourcing.Writer.Api.Application.Command.OutsourcingArrivalOrderModel
{
    public class UpdateOutSourcingArrivalCommand :IRequest<ApiResult<int>>
    {
        public int Id { get; set; }
        /// <summary>
        /// 单据编码
        /// </summary>
        public string DocumentCode { get; set; }
        /// <summary>
        /// 业务类型
        /// </summary>
        public string BusinessType { get; set; }
        /// <summary>
        /// 委外单号
        /// </summary>
        public string OutsourcingOrderNumber { get; set; }
        /// <summary>
        /// 物料编码
        /// </summary>
        public string MaterialCode { get; set; }
        /// <summary>
        /// 备注信息
        /// </summary>
        public string Remark { get; set; }
        /// <summary>
        /// 单据日期
        /// </summary>
        public DateTime DocumentDate { get; set; }
        /// <summary>
        /// 操作员
        /// </summary>
        public string Operator { get; set; }
        /// <summary>
        /// 供应商
        /// </summary>
        public string Supplier { get; set; }
        /// <summary>
        /// 物料名称
        /// </summary>
        public string MaterialName { get; set; }
        /// <summary>
        /// 单据状态
        /// </summary>
        public string DocumentStatus { get; set; }
        /// <summary>
        /// 审核员
        /// </summary>
        public string Auditor { get; set; }
        /// <summary>
        /// 计划单号
        /// </summary>
        public string PlanOrderNumber { get; set; }
        /// <summary>
        /// 到货数量
        /// </summary>
        public int ArrivalQuantity { get; set; }
        /// <summary>
        /// 业务状态
        /// </summary>
        public string BusinessStatus { get; set; }
        /// <summary>
        /// 审核日期
        /// </summary>
        public DateTime? AuditDate { get; set; }
        // 这里可空类型表示审核可能还未进行
        /// <summary>
        /// 跟单编号
        /// </summary>
        public string FollowOrderNumber { get; set; }
        /// <summary>
        /// 入库仓库
        /// </summary>
        public string Warehouse { get; set; }

        // 以下是审计字段
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreatedAt { get; set; } = DateTime.Now;
        /// <summary>
        /// 创建人
        /// </summary>
        public string CreatedBy { get; set; }
        /// <summary>
        /// 最后修改时间
        /// </summary>
        public DateTime? LastModifiedAt { get; set; }
        /// <summary>
        /// 最后修改人
        /// </summary>
        public string LastModifiedBy { get; set; }
        public int IsDelete { get; set; }
        public DateTime OrderDeliveryDate { get; set; }
    }
}
